/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package asesor;

import java.util.ArrayList;
import java.util.Iterator;
import jess.JessException;
import jess.Rete;

/**
 *
 * @author Fockia
 */
public class LanzadorJess {

    private static Rete m_rete;
    //  Fichero que almacena el fuente del programa clips que vamos a cargar

    public LanzadorJess() {
        m_rete = new Rete();
    }

    public static Rete getM_rete() {
        return m_rete;
    }

        public void ejecutarConsulta(ArrayList consulta) {
        Iterator it = consulta.iterator();
        try {
            while (it.hasNext()) {
                m_rete.eval((String) it.next());
                m_rete.run();
            }
        } catch (JessException ex) {
            System.out.println("Error AL EJECUTAR CONSULTA \n" + ex);
        }
    }

// obtiene e imprime la lista de hechos
    public void listaHechos() {
        java.util.Iterator iterador;  // java.util.Iterator
        iterador = m_rete.listFacts();
        while (iterador.hasNext()) {
            System.out.println(iterador.next());
        }
    }

    public void halt() {
        try {
            m_rete.halt();
        } catch (JessException je3) {
            System.out.println("Error: no puedo detener programa ");
        }
    }

    public boolean cargaPrograma(String nombre) {
        try {
            m_rete.eval("(batch \"" + nombre + "\")");
            return true;
        } catch (JessException je0) {
            System.out.println("Error: no puedo leer programa " + nombre + "\n" + je0);
            return false;
        }
    }

    public void reset() {
        try {
            m_rete.clear();
        } catch (JessException je2) {
            System.out.println("Error: no puedo resetear ");
        }
    }

}
